package NGUYENVIETANH.OOP.EXCERCISE.EX06.GIAODICHNH;

public class CONTROLLERS {
    private MODELS m_objModels;
    //C1: Luôn luôn khởi tạo Models thông qua hàm khởi dựng của Controllers.
    //Bởi vì cứ khi tạo ra đối tượng của Controllers thì hàm khởi dựng này đc \
    //thực thi.
    public CONTROLLERS(){
        m_objModels = new MODELS();
    }
        
    /*
     * BÀI TOÁN GIAO DỊCH NH NHƯ SAU:
     * a. KH A đến NH giao dịch Gửi Hoặc Rút Tiền từ tài khoản.
     * b. Hệ thống của NH sẽ sử lý như sau:
     * + Kiểm tra xác thực thông tin tài khoản? --> True or False?
     * + True: Kiểm tra xác thực trạng thái kích hoạt của tài khoản? --> True or False?
     * + True: Kiểm tra số dư tài khoản? --> True or False?
     * + True: Cho phép thực hiện giao dịch này.
     * */
    public boolean GiaoDichGuiOrRutTien(UserEntity objEntity){
        //C2: Cứ khi thực thi nghiệp vụ thì sẽ khởi tạo Models
        //m_objModels = new MODELS();
        
        //a. Kiểm tra xác thực thông tin tài khoản?
        if(m_objModels.KiemTra_TaiKhoan_NH(objEntity)){            
            //b. Kiểm tra xác thực trạng thái kích hoạt của tài khoản?
            if(m_objModels.KiemTra_TrangThai_KichHoat(objEntity)){                
                //c. Kiểm tra số dư tài khoản?
                if(m_objModels.KiemTra_SoDu_TaiKhoan(objEntity)){
                    return true;
                }
                return false;
            }
            return false;
        }       
        return false;     
    }    
}
